﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class ПодключаемоеОборудованиеАтолСканерыШтрихкода
	{
		////////// ОБЩИЕ КОМАНДЫ ВСЕХ ОБРАБОТЧИКОВ //////////////
		// Функция осуществляет подключение устройства.
		//
		// Параметры:
		//  ОбъектДрайвера   - <*>
		//           - ОбъектДрайвера драйвера торгового оборудования.
		//
		// Возвращаемое значение:
		//  <Булево> - Результат работы функции.
		//

		public object ПодключитьУстройство(/*ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			/*// Обязательные выходные
*/
			if(true/*ТипЗнч(ВыходныеПараметры) <> Тип("Массив")*/)
			{
				//ВыходныеПараметры = Новый Массив();
			}
			/*// Проверка настроенных параметров
*/
			//Порт              = Неопределено;
			//Скорость          = Неопределено;
			//БитДанных         = Неопределено;
			//СтопБит           = Неопределено;
			//Четность          = Неопределено;
			//Чувствительность  = Неопределено;
			//Префикс           = Неопределено;
			//Суффикс           = Неопределено;
			//Модель            = Неопределено;
			//Параметры.Свойство("Порт"            , Порт);
			//Параметры.Свойство("Скорость"        , Скорость);
			//Параметры.Свойство("БитДанных"       , БитДанных);
			//Параметры.Свойство("СтопБит"         , СтопБит);
			//Параметры.Свойство("Четность"        , Четность);
			//Параметры.Свойство("Чувствительность", Чувствительность);
			//Параметры.Свойство("Префикс"         , Префикс);
			//Параметры.Свойство("Суффикс"         , Суффикс);
			//Параметры.Свойство("Модель"          , Модель);
			if(true/*Порт              = Неопределено
	 Или Скорость          = Неопределено
	 Или БитДанных         = Неопределено
	 Или СтопБит           = Неопределено
	 Или Четность          = Неопределено
	 Или Чувствительность  = Неопределено
	 Или Префикс           = Неопределено
	 Или Суффикс           = Неопределено
	 Или Модель            = Неопределено*/)
			{
				//ВыходныеПараметры.Добавить(999);
				/*ВыходныеПараметры.Добавить(НСтр("ru='Не настроены параметры устройства.
		|Для корректной работы устройства необходимо задать параметры его работы.
		|Сделать это можно при помощи формы ""Настройка параметров"" модели
		|подключаемого оборудования в форме ""Подключение и настройка оборудования"".'"));*/
				//Результат = Ложь;
			}
			/*// Конец: Проверка настроенных параметров
*/
			if(true/*Результат*/)
			{
				//ВыходныеПараметры.Добавить("BarCodeScaner");
				//ВыходныеПараметры.Добавить(Новый Массив());
				//ВыходныеПараметры[1].Добавить("BarCodeValue");
				//ПрефиксДрайвера = "";
				//СуффиксДрайвера = "";
				//ОбъектДрайвера.ДобавитьУстройство();
				if(true/*ОбъектДрайвера.Результат = 0*/)
				{
					//ПараметрыПодключения.Вставить("ИДУстройства", ОбъектДрайвера.НомерТекущегоУстройства);
					//ОбъектДрайвера.НаименованиеТекущегоУстройства = Параметры.Модель;
					//ОбъектДрайвера.НомерПорта       = Параметры.Порт;
					//ОбъектДрайвера.СкоростьОбмена   = Параметры.Скорость;
					//ОбъектДрайвера.Четность         = Параметры.Четность;
					//ОбъектДрайвера.БитыДанных       = Параметры.БитДанных;
					//ОбъектДрайвера.СтопБиты         = Параметры.СтопБит;
					//ОбъектДрайвера.Чувствительность = Параметры.Чувствительность;
					//ОбъектДрайвера.Модель           = 0;
					//ОбъектДрайвера.СтараяВерсия     = 0;
					//ПрефиксДрайвера = Параметры.Префикс;
					//СуффиксДрайвера = Параметры.Суффикс;
					//ТекПрефикс = СтрЗаменить(ПрефиксДрайвера, "#", Символы.ПС);
					//КоличествоСимволов = СтрЧислоСтрок(ТекПрефикс);
					//ПрефиксДрайвера = "";
					//ТекСуффикс = СтрЗаменить(СуффиксДрайвера, "#", Символы.ПС);
					//КоличествоСимволов = СтрЧислоСтрок(ТекСуффикс);
					//СуффиксДрайвера = "";
					//ОбъектДрайвера.Префикс = ПрефиксДрайвера;
					//ОбъектДрайвера.Суффикс = СуффиксДрайвера;
				}
				if(true/*Результат*/)
				{
					//ОбъектДрайвера.УстройствоВключено = 1;
					if(true/*ОбъектДрайвера.Результат <> 0*/)
					{
						//Результат = Ложь;
						//ВыходныеПараметры.Очистить();
						//ВыходныеПараметры.Добавить(999);
						//ВыходныеПараметры.Добавить(ОбъектДрайвера.ОписаниеРезультата);
						//ОбъектДрайвера.УстройствоВключено = 0;
						//ОбъектДрайвера.УдалитьУстройство();
					}
				}
			}
			return null;
		}
		// Функция осуществляет отключение устройства.
		//
		// Параметры:
		//  ОбъектДрайвера - <*>
		//         - ОбъектДрайвера драйвера торгового оборудования.
		//
		// Возвращаемое значение:
		//  <Булево> - Результат работы функции.
		//

		public object ОтключитьУстройство(/*ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			//ОбъектДрайвера.НомерТекущегоУстройства = ПараметрыПодключения.ИДУстройства;
			//ОбъектДрайвера.УстройствоВключено = 0;
			//ОбъектДрайвера.УдалитьУстройство();
			return null;
		}
		// Функция получает, обрабатывает и перенаправляет на исполнение команду к драйверу
		//

		public object ВыполнитьКоманду(/*Команда, ВходныеПараметры = Неопределено, ВыходныеПараметры = Неопределено,
                         ОбъектДрайвера, Параметры, ПараметрыПодключения*/)
		{
			//Результат = Истина;
			/*// Обязательные выходные
*/
			if(true/*ТипЗнч(ВыходныеПараметры) <> Тип("Массив")*/)
			{
				//ВыходныеПараметры = Новый Массив();
			}
			/*// Обработка события от устройства
*/
			if(true/*Команда = "ОбработатьСобытие"*/)
			{
				//Событие = ВходныеПараметры[0];
				//Данные  = ВходныеПараметры[1];
				//Результат = ОбработатьСобытие(ОбъектДрайвера, Параметры, ПараметрыПодключения, Событие, Данные, ВыходныеПараметры);
				/*// Завершение обработки события от устройства
*/
			}
			return null;
		}
		/////////////////////////////////////
		// Функции-исполнители команд
		///////// СПЕЦИФИЧНЫЕ ПО ТИПУ ОБОРУДОВАНИЯ КОМАНДЫ ////////////////
		// Функция осуществляет обработку внешних событий торгового оборудования.
		//

		public object ОбработатьСобытие(/*ОбъектДрайвера, Параметры, ПараметрыПодключения, Событие, Данные, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			//ШК        = "";
			//ВыходныеПараметры.Добавить("ScanData");
			//ВыходныеПараметры.Добавить(Новый Массив());
			//ВыходныеПараметры[1].Добавить(ШК);
			//ВыходныеПараметры[1].Добавить(Новый Массив);
			//ВыходныеПараметры[1][1].Добавить(ШК);
			//ВыходныеПараметры[1][1].Добавить(ШК);
			//ВыходныеПараметры[1][1].Добавить(0);
			return null;
		}
		// Процедура вызывается, когда система готова принять следующее событие от устройства.

		public object ЗавершитьОбработкуСобытия(/*ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			return null;
		}
		// Функция возвращает версию установленного драйвера
		//

		public object ПолучитьВерсиюДрайвера(/*ОбъектДрайвера, Параметры, ПараметрыПодключения, ВыходныеПараметры*/)
		{
			//Результат = Истина;
			//ВыходныеПараметры.Добавить(НСтр("ru='Установлен'"));
			//ВыходныеПараметры.Добавить(НСтр("ru='Не определена'"));
			return null;
		}
	}
}
